TTCatalogクラスは、データベース内の表に関するメタデータ情報へのプログラム的なアクセスに使用される、トップ・レベルのクラスです。TTCatalogオブジェクト内には、TTCatalogTableオブジェクトの内部配列があります。コンストラクタを除くTTCatalogのすべてのパブリック・メソッドを使用して、そのTTCatalogTable配列への読取り専用アクセスを取得します。
なし
(constructor) TTCatalog (TTConnection*)
TTCatalogコンストラクタは、TTConnection*パラメータをキャッシュし、すべての内部データ構造を適切に初期化します。TTCatalogオブジェクトを使用するには、最初にfetchCatalogData()(後述を参照)をコールする必要があります。
fetchCatalogData (TTStatus &)
これは、データ・ストアと相互作用する唯一のメソッドです。データ・ストアへの接続はコンストラクタによってキャッシュされたため、唯一のパラメータはTTStatusオブジェクトです。このメソッドは、自身を構築する際にデータベース内のカタログを読み取って表および索引に関する情報を取得し、それを内部データ構造に格納します。
その後、構築されたTTCatalogオブジェクトは完全にオフラインで使用されます。このオブジェクトは、構築後はデータベースに接続されません。
その他のTTCatalogアクセッサ・メソッドのいずれかを使用する前に、このメソッドをコールする必要があります。そうでないと、それらのメソッドによって有効な情報が返されません。
次の例に、TTCatalogの使用方法を示します。2つのデータベース・コール後のstat.rc
の確認は行いません。
TTConnection conn;
TTStatus stat;
conn.Connect(DSN=TptbmData37, stat);
TTCatalog cat (&conn);
cat.fetchCatalogData(stat);
// TTCatalog cat is no longer connected to the database;
// you can now query it through its read-only methods.
cerr << "There are " << cat.getNumTables()
<< " tables in this database:" << endl;
for (int i=0; i < cat.getNumTables(); i++)
cerr << cat.getTable(i).getTableOwner() << "."
<< cat.getTable(I).getTableName() << endl;
int getNumTables()
ユーザー表とシステム表の両方を含む、データベース内の表の合計数を返します。
int getNumUserTables()
データベース内のユーザー表の数を返します。
int getNumSysTables()
データベース内のシステム表の数を返します。
const TTCatalogTable & getTable (const char * owner,
const char * tblname)
ownerによって所有される「tblname」という名前のデータベース表に対応するTTCatalogTableオブジェクトへの定数参照を返します。「TTCatalogTable」を参照してください。
const TTCatalogTable & getTable (int i)
システム内のi番目の表に対応するTTCatalogTableへの定数参照を返します。このメソッドは、システム内のすべての表を通じて反復を容易にするためのものです。この配列における表の順序は任意です。
0 <= i <= getNumTables()という関係が保持されることに注意してください。
const TTCatalogTable & getUserTable (int i)
システム内のi番目のユーザー表に対応するTTCatalogTableへの定数参照を返します。このメソッドは、システム内のすべてのユーザー表を通じて反復を容易にするためのものです。この配列におけるユーザー表の順序は任意です。
0 <= i <= getNumUserTables()という関係が保持されることに注意してください。